#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <opencv2/opencv.hpp>

using namespace cv;//opencv命名空间

QT_BEGIN_NAMESPACE
namespace Ui { class PicUI; }
QT_END_NAMESPACE

class PicUI : public QWidget
{
    Q_OBJECT

public:
    PicUI(QWidget *parent = nullptr);
    ~PicUI();

    void imgShow();                                                     //显示图片
    void imgProc_contract_brightness(float contrast, int brightness);   //“对比度”和“亮度”的处理函数
    void imgProc_filter_waves(int ker);                                 //“滤波”的处理函数
    void imgProc_binarization(double thresholdValue, int mode);         //“二值化”处理函数
    void imgProc_changeSize_revolve(float ang, float sca);              //“缩放”与“旋转”处理函数
    void imgProc_edge_detection(const int num);                         //“边缘检测”处理函数，参数对应三种不同的处理
    QString toBase64(const QImage &img, const QString &imgType);        //“输出图片转base64”处理函数
    QImage toImage(const QString &base64str);                           //“base64转图片”处理函数


private:
    Mat m_MatImg;               //原图，Mat类型
    QImage m_QImageImg;      //原图，QImage类型      （图片大小修改）
    Mat m_NewMatImg;            //修改后的图，Mat类型    （保存图片）
    QImage m_NewQImageImg;      //修改后的图，QImage类型 （显示和修改）

private slots:
    void on_btnText_clicked();

    void on_horizontalSlider_valueChanged(int value);

    void on_btnSave_clicked();

    void on_hsrChangeSize_valueChanged(int value);

    void on_hsrRevolve_valueChanged(int value);

    void on_letNewHeight_editingFinished();

    void on_letNewWidth_editingFinished();

    void on_btnImg2Base_clicked();

    void on_btnBase2Img_clicked();

    void on_cbxImgDealChoice_currentTextChanged(const QString &arg1);

private:
    Ui::PicUI *ui;
};
#endif // WIDGET_H
